home *** CD-ROM | disk | FTP | other *** search
/ The Guided Tour of Multimedia (Second Edition) / The Guided Tour of Multimedia (Second Edition).iso / truemot / duck.mst next >
Text File  |  1995-07-11  |  10KB  |  296 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'msregdb.inc'
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME       = 100
  13. CONST ASKQUIT       = 200
  14. CONST DESTPATH      = 300
  15. CONST EXITFAILURE   = 400
  16. CONST EXITQUIT      = 600
  17. CONST EXITSUCCESS   = 700
  18. CONST OPTIONS       = 800
  19. CONST APPHELP       = 900
  20. CONST BADPATH       = 6400
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24.  
  25. GLOBAL DEST$        ''Default destination directory.
  26. GLOBAL ROOTDEST$        ''Default destination directory.
  27. GLOBAL OPTCUR$      ''Option selection from option dialog.
  28.  
  29. DECLARE SUB Install
  30. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  31.  
  32.  
  33. ' Maximize Code
  34. CONST SW_SHOWMAXIMIZED=3
  35. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  36.  
  37. ' Remove the Title Bar Code
  38. CONST WS_VISIBLE=&H10000000
  39. CONST WS_BORDER =&H00800000
  40. CONST WS_CLIPCHILDREN = &H02000000
  41. CONST GWL_STYLE =-16
  42.     
  43. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  44. DECLARE FUNCTION SetWindowPos LIB "user.exe" (hWnd%, hWndAfter%, x%, y%, cx%, cy%, Flags%) AS INTEGER
  45. DECLARE FUNCTION WinExec LIB "krnl386.exe" (CmdLine$, CmdShow%) AS INTEGER
  46.  
  47. INIT:
  48.     ' Maximize Code
  49.     hWnd%=HwndFrame()
  50.     junk%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  51.  
  52.     i1&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  53.     i2%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  54.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  55.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  56.  
  57.     SetBitmap CUIDLL$, LOGO
  58.     SetTitle "HTI Duck TrueMotion-S Decompressor Setup"
  59.  
  60.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  61.     IF szInf$ = "" THEN
  62.         szInf$ = GetSymbolValue("STF_CWDDIR") + "duck.INF"
  63.     END IF
  64.     ReadInfFile szInf$
  65.  
  66.     OPTCUR$ = "1"
  67.     DEST$ = GetWindowsDir
  68.  
  69. '$IFDEF DEBUG
  70.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  71.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  72.     IF IsDriveValid(WinDrive$) = 0 THEN
  73.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  74.         GOTO QUIT
  75.     END IF
  76. '$ENDIF ''DEBUG
  77.  
  78.  
  79. WELCOME:
  80.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  81.     IF sz$ = "CONTINUE" THEN
  82.         UIPop 1
  83.       '****************************************************************************************
  84.       '********************* Check For NT *****************************************************
  85.       '****************************************************************************************
  86.        OSIS% = IsOSNT()
  87.        IF OSIS% = 1 THEN
  88.            o% = DoMsgBox("You can not install the Windows 3.1 version of the TrueMotion-S Decompressor on Windows NT.", "HTI TrueMotion-S Playback Setup",MB_TASKMODAL+MB_OK+MB_ICONEXCLAMATION)
  89.            RETURN
  90.       END IF
  91.       '****************************************************************************************
  92.       '********************* Check For WIN32 Versions of the Code******************************
  93.       '****************************************************************************************
  94.       '// Check for the WIN32 Decompressor
  95.       SrcDir$ = GetSymbolValue("STF_SRCDIR")
  96.       
  97.       IF DoesFileExist(DEST$+"system\duckw32d.dll", femExists) = 1 THEN
  98.          IF DoesFileExist(DEST$+"system\duckw32c.dll", femExists) = 1 THEN
  99.             CANDD% = DoMsgBox("WIN32 versions of the Duck TrueMotion-S Compressor and Decompressor exist. Do you wish to continue and remove them?", "HTI Duck TrueMotion-S Decompressor Setup",MB_TASKMODAL+MB_YESNO+MB_ICONQUESTION)
  100.             IF CANDD% = IDYES THEN
  101.                RemoveFile DEST$+"system\duck32.drv", cmoForce
  102.                RemoveFile DEST$+"system\duckw32d.dll", cmoForce
  103.                RemoveFile DEST$+"system\duckw32c.dll", cmoForce
  104.                RemoveFile DEST$+"system\imagew32.dll", cmoForce
  105.                RemoveFile "c:\tmot\tmot.dat", cmoForce
  106.                Temp%=RemoveTheDir("c:\tmot")
  107.                RemoveIniKey DEST$+"system.ini", "drivers32", "vidc.duck", cmoVital
  108.            T%=WinExec(SrcDir$+"\drivers\DelRegKy.EXE SOFTWARE\HTI\Duck", SW_SHOWMAXIMIZED)
  109.                T%=WinExec(SrcDir$+"\drivers\DelRegKy.EXE System\CurrentControlSet\Control\MediaResources\icm\vidc.duck", SW_SHOWMAXIMIZED)
  110.         ELSE
  111.             GOSUB ASKQUIT
  112.             GOTO WELCOME
  113.             END IF
  114.          ELSE
  115.             CANDD% = DoMsgBox("A WIN32 version of the Duck TrueMotion-S Decompressor exists. Do you wish to continue and remove it?", "HTI Duck TrueMotion-S Decompressor Setup",MB_TASKMODAL+MB_YESNO+MB_ICONQUESTION)
  116.             IF CANDD% = IDYES THEN
  117.                RemoveFile DEST$+"system\duck32.drv", cmoForce
  118.                RemoveFile DEST$+"system\duckw32d.dll", cmoForce
  119.                RemoveIniKey DEST$+"system.ini", "drivers32", "vidc.duck", cmoVital
  120.                 T%=WinExec(SrcDir$+"\drivers\DelRegKy.EXE SOFTWARE\HTI\Duck", SW_SHOWMAXIMIZED)
  121.                T%=WinExec(SrcDir$+"\drivers\DelRegKy.EXE System\CurrentControlSet\Control\MediaResources\icm\vidc.duck", SW_SHOWMAXIMIZED)
  122.         ELSE
  123.             GOSUB ASKQUIT
  124.             GOTO WELCOME
  125.             END IF
  126.          END IF
  127.       ELSE
  128.          IF DoesFileExist(DEST$+"system\duckw32c.dll", femExists) = 1 THEN
  129.             CANDD% = DoMsgBox("A WIN32 version of the Duck TrueMotion-S Compressor exists. Do you wish to continue and remove it?", "HTI Duck TrueMotion-S Decompressor Setup",MB_TASKMODAL+MB_YESNO+MB_ICONQUESTION)
  130.             IF CANDD% = IDYES THEN
  131.            RemoveFile DEST$+"system\duck32.drv", cmoForce
  132.                RemoveFile DEST$+"system\duckw32c.dll", cmoForce
  133.                RemoveFile DEST$+"system\imagew32.dll", cmoForce
  134.                RemoveFile "c:\tmot\tmot.dat", cmoForce
  135.                Temp%=RemoveTheDir("c:\tmot")
  136.                RemoveIniKey DEST$+"system.ini", "drivers32", "vidc.duck", cmoVital
  137.                T%=WinExec(SrcDir$+"\drivers\DelRegKy.EXE SOFTWARE\HTI\Duck", SW_SHOWMAXIMIZED)
  138.                T%=WinExec(SrcDir$+"\drivers\DelRegKy.EXE System\CurrentControlSet\Control\MediaResources\icm\vidc.duck", SW_SHOWMAXIMIZED)
  139.         ELSE
  140.             GOSUB ASKQUIT
  141.             GOTO WELCOME
  142.             END IF
  143.          END IF
  144.       END IF
  145.     ELSE
  146.         GOSUB ASKQUIT
  147.         GOTO WELCOME
  148.     END IF
  149.  
  150.  
  151. GETPATH:
  152.     SetSymbolValue "EditTextIn", DEST$
  153.     SetSymbolValue "EditFocus", "END"
  154. GETPATHL1:
  155. '    sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  156. '    DEST$ = GetSymbolValue("EditTextOut")
  157.  
  158.     IF sz$ = "CONTINUE" THEN
  159.         IF IsDirWritable(DEST$) = 0 THEN
  160.             GOSUB BADPATH
  161.             GOTO GETPATHL1
  162.         END IF
  163.         UIPop 1
  164.     ELSEIF sz$ = "REACTIVATE" THEN
  165.         GOTO GETPATHL1
  166.     ELSEIF sz$ = "BACK" THEN
  167.         UIPop 1
  168.         GOTO GETPATH
  169.     ELSE
  170.         GOSUB ASKQUIT
  171.         GOTO GETPATH
  172.     END IF
  173.  
  174.  
  175.     Install
  176.  
  177.  
  178. QUIT:
  179.     ON ERROR GOTO ERRQUIT
  180.  
  181.     IF ERR = 0 THEN
  182.         dlg% = EXITSUCCESS
  183.     ELSEIF ERR = STFQUIT THEN
  184.         dlg% = EXITQUIT
  185.     ELSE
  186.         dlg% = EXITFAILURE
  187.     END IF
  188. QUITL1:
  189.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  190.     IF sz$ = "REACTIVATE" THEN
  191.         GOTO QUITL1
  192.     END IF
  193.     UIPop 1
  194.  
  195.     END
  196.  
  197. ERRQUIT:
  198.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  199.     END
  200.  
  201.  
  202.  
  203. BADPATH:
  204.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  205.     IF sz$ = "REACTIVATE" THEN
  206.         GOTO BADPATH
  207.     END IF
  208.     UIPop 1
  209.     RETURN
  210.  
  211.  
  212.  
  213. ASKQUIT:
  214.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  215.  
  216.     IF sz$ = "EXIT" THEN
  217.         UIPopAll
  218.         ERROR STFQUIT
  219.     ELSEIF sz$ = "REACTIVATE" THEN
  220.         GOTO ASKQUIT
  221.     ELSE
  222.         UIPop 1
  223.     END IF
  224.     RETURN
  225.  
  226.  
  227.  
  228. '**
  229. '** Purpose:
  230. '**     Builds the copy list and performs all installation operations.
  231. '** Arguments:
  232. '**     none.
  233. '** Returns:
  234. '**     none.
  235. '*************************************************************************
  236. SUB Install STATIC
  237.    DCI% = DoMsgBox("Does Your System Support DCI Video Hardware Acceleration?", "HTI TrueMotion-S Setup",MB_TASKMODAL+MB_YESNO+MB_ICONQUESTION)
  238.  
  239.     IF DCI% = IDYES THEN
  240.         CreateIniKeyValue "WIN.INI", "TrueMotion", "videohardware", "ON" , cmoOverwrite
  241.     ELSE
  242.         CreateIniKeyValue "WIN.INI", "TrueMotion", "videohardware", "OFF" , cmoOverwrite
  243.     END IF
  244.  
  245.  
  246.     BlackLine% = DoMsgBox("Do You Want To Display Black Lines With Zoomed Video?","HTI TrueMotion-S", MB_TASKMODAL+MB_YESNO+MB_ICONQUESTION)
  247.     
  248.     IF BlackLine% = IDYES THEN
  249.         CreateIniKeyValue "WIN.INI", "TrueMotion", "blackline", "ON" , cmoOverwrite
  250.     ELSE
  251.         CreateIniKeyValue "WIN.INI", "TrueMotion", "blackline", "OFF" , cmoOverwrite
  252.     END IF
  253.  
  254.  
  255.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  256.     CreateDir DEST$, cmoNone
  257.     NewSrcDir$ = SrcDir$ + "drivers\"
  258.     AddSectionFilesToCopyList "Files", NewSrcDir$, DEST$
  259.  
  260.     CopyFilesInCopyList
  261.  
  262.     SystemINI$ = DEST$ + "SYSTEM.INI"
  263.     CreateIniKeyValue SystemINI, "drivers", "vidc.duck", "trueduck.drv" , cmoOverwrite
  264.  
  265.     RetVal% = FFindINIKeyAndVal(SystemINI$ , "386Enh", "device=dva.386")    
  266.  
  267.     IF RetVal% = 0 THEN
  268.        CreateSysIniKeyValue SystemINI$, "386Enh", "device", "dva.386" , cmoOverwrite
  269.     END IF
  270. END SUB
  271.  
  272.  
  273.  
  274. '**
  275. '** Purpose:
  276. '**     Appends a file name to the end of a directory path,
  277. '**     inserting a backslash character as needed.
  278. '** Arguments:
  279. '**     szDir$  - full directory path (with optional ending "\")
  280. '**     szFile$ - filename to append to directory
  281. '** Returns:
  282. '**     Resulting fully qualified path name.
  283. '*************************************************************************
  284. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  285.     IF szDir$ = "" THEN
  286.         MakePath = szFile$
  287.     ELSEIF szFile$ = "" THEN
  288.         MakePath = szDir$
  289.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  290.         MakePath = szDir$ + szFile$
  291.     ELSE
  292.         MakePath = szDir$ + "\" + szFile$
  293.     END IF
  294. END FUNCTION
  295.  
  296.